#!/bin/bash

# 设置颜色变量
RED='\033[0;31m'
GREEN='\033[0;32m'
LIGHT_GREEN='\033[1;32m'
YELLOW='\033[1;33m'
BLUE='\033[0;34m'
CYAN='\033[0;36m'
BOLD='\033[1m'
NC='\033[0m'

# 显示赞助商信息函数
show_sponsor() {
    echo -e "${CYAN}====== 赞助商信息 ======${NC}"
    echo -e "${BOLD}▶ MC云${NC}"
    echo -e "  ${LIGHT_GREEN}2核2G高性能云电脑每月只要4.99￥ 24小时挂机没有任何问题！${NC}"
    echo -e "  ${LIGHT_GREEN}https://idc.stay33.cn/act.html${NC}"
    echo -e "${CYAN}========================${NC}\n"
    
    # 添加倒计时
    echo -e "${YELLOW}即将开始安装...${NC}"
    for i in {5..1}; do
        echo -ne "\r${YELLOW}${i} 秒后开始安装！${NC}"
        sleep 1
    done
    echo -e "\n"
}

# 下载安装脚本函数
download_script() {
    local script_name=$1
    local url="https://gitee.com/mc_cloud/mccloud_bot/raw/master/${script_name}.sh"
    if curl -s -o "${script_name}.sh" "$url"; then
        sudo chmod +x "${script_name}.sh"
        return 0
    else
        return 1
    fi
}

# 显示总体欢迎界面
clear
echo -e "${CYAN}${BOLD}"
cat << "EOF"
███╗   ███╗ ██████╗     ██████╗██╗      ██████╗ ██╗   ██╗██████╗ 
████╗ ████║██╔════╝    ██║     ██║     ██╔═══██╗██║   ██║██╔══██╗
██╔████╔██║██║         ██║     ██║     ██║   ██║██║   ██║██║  ██║
██║╚██╔╝██║██║         ██║     ██║     ██║   ██║██║   ██║██║  ██║
██║ ╚═╝ ██║╚██████╗    ███████╗███████╗╚██████╔╝╚██████╔╝██████╔╝
╚═╝     ╚═╝ ╚═════╝    ╚══════╝╚══════╝ ╚═════╝  ╚═════╝ ╚═════╝ 
EOF
echo -e "${NC}"
echo -e "${BLUE}${BOLD}MCloud 智能机器人集成安装系统${NC}\n"

# 显示版权信息
echo -e "${YELLOW}版权所有：MC云-小馒头${NC}"
echo -e "${YELLOW}作者：小馒头${NC}"
echo -e "${YELLOW}联系QQ：1317957427${NC}"
echo -e "${YELLOW}QQ群：112406641${NC}\n"

# 显示赞助商信息（开始时显示倒计时）
show_sponsor

# 下载所需的脚本
echo -e "\n${CYAN}正在下载安装脚本...${NC}"
scripts=("mccloud_docker_u" "mccloud_astrbot_u" "mccloud_gewechat_u" "mccloud_napcatqq_u" "bot_u")
for script in "${scripts[@]}"; do
    echo -e "下载 ${script}.sh..."
    if download_script "$script"; then
        echo -e "${GREEN}✓ ${script}.sh 下载成功${NC}"
    else
        echo -e "${RED}✗ ${script}.sh 下载失败${NC}"
        exit 1
    fi
done

# 配置 bot 命令
echo -e "\n${CYAN}配置 bot 命令...${NC}"
sudo mv bot_u.sh /usr/local/bin/bot
sudo chmod +x /usr/local/bin/bot
if [ -f /usr/local/bin/bot ]; then
    echo -e "${GREEN}✓ bot 命令配置成功${NC}"
else
    echo -e "${RED}✗ bot 命令配置失败${NC}"
fi

# 执行 Docker 安装
echo -e "\n${CYAN}[1/4] 开始安装 Docker 环境...${NC}"
if ! bash mccloud_docker_u.sh; then
    echo -e "${RED}Docker 安装失败，尝试手动安装 Docker Compose...${NC}"
    
    # 手动安装 Docker Compose
    echo -e "${YELLOW}正在安装 Docker Compose...${NC}"
    DOCKER_CONFIG=${DOCKER_CONFIG:-$HOME/.docker}
    sudo mkdir -p "$DOCKER_CONFIG"/cli-plugins
    curl -SL https://github.com/docker/compose/releases/download/v2.24.5/docker-compose-linux-x86_64 -o "$DOCKER_CONFIG"/cli-plugins/docker-compose
    sudo chmod +x "$DOCKER_CONFIG"/cli-plugins/docker-compose
    
    # 验证安装
    if docker compose version; then
        echo -e "${GREEN}Docker Compose 安装成功${NC}"
    else
        echo -e "${RED}Docker Compose 安装失败${NC}"
        exit 1
    fi
else
    echo -e "${GREEN}✓ Docker 安装完成${NC}"
fi
sleep 2

# 执行 AstrBot 安装
echo -e "\n${CYAN}[2/4] 开始安装 AstrBot...${NC}"
if ! bash mccloud_astrbot_u.sh; then
    echo -e "${RED}AstrBot 安装失败${NC}"
    exit 1
fi
echo -e "${GREEN}✓ AstrBot 安装完成${NC}"
sleep 2

# 执行 Gewechat 安装
echo -e "\n${CYAN}[3/4] 开始安装 Gewechat...${NC}"
if ! bash mccloud_gewechat_u.sh; then
    echo -e "${RED}Gewechat 安装失败${NC}"
    exit 1
fi
echo -e "${GREEN}✓ Gewechat 安装完成${NC}"
sleep 2

# 执行 Napcat QQ 安装
echo -e "\n${CYAN}[4/4] 开始安装 Napcat QQ...${NC}"
if ! bash mccloud_napcatqq_u.sh; then
    echo -e "${RED}Napcat QQ 安装失败${NC}"
    exit 1
fi
echo -e "${GREEN}✓ Napcat QQ 安装完成${NC}"
sleep 2

# 获取本地IP
LOCAL_IP=$(ip addr show | grep -w inet | grep -v 127.0.0.1 | awk '{print $2}' | cut -d/ -f1)
if echo "$LOCAL_IP" | grep -q "^17"; then
    SERVER_IP=$LOCAL_IP
else
    LOCAL_IP=$(echo "$LOCAL_IP" | grep ^192)
    SUBNET=$(echo "$LOCAL_IP" | cut -d. -f3)
    SERVER_IP=$(ifconfig | grep -B1 "inet 17" | grep inet | awk '{print $2}' | grep "^17.*\.${SUBNET}\.")
fi

# 获取 Napcat QQ 的 WebUI Token
NAPCAT_TOKEN=$(docker exec napcat /bin/bash -c "cat /napcat/config/webui.json" 2>/dev/null | grep -o '"token": "[^"]*"' | cut -d'"' -f4)
if [ -z "$NAPCAT_TOKEN" ]; then
    NAPCAT_TOKEN="napcat"
fi

# 显示最终的安装完成信息
clear
echo -e "${GREEN}${BOLD}"
cat << "EOF"
✨ MCloud 智能机器人集成系统安装完成 ✨
EOF
echo -e "${NC}"

echo -e "${CYAN}=====================================${NC}"
echo -e "${BOLD}AstrBot 管理面板：${NC}"
echo -e "${BLUE}▶ http://${SERVER_IP}:6185${NC}"
echo -e "用户名：${YELLOW}astrbot${NC}"
echo -e "密码：  ${YELLOW}astrbot${NC}"

echo -e "\n${BOLD}微信机器人端口：${NC}"
echo -e "${BLUE}▶ ${SERVER_IP}:2531${NC}"
echo -e "${BLUE}▶ ${SERVER_IP}:2532${NC}"

echo -e "\n${BOLD}Napcat QQ 管理面板：${NC}"
echo -e "${BLUE}▶ http://${SERVER_IP}:6099/webui/${NC}"
echo -e "Token：${BOLD}${NAPCAT_TOKEN}${NC}"
echo -e "${BLUE}▶ WebSocket: ws://${SERVER_IP}:6099${NC}"
echo -e "${BLUE}▶ HTTP API: http://${SERVER_IP}:3001${NC}"
echo -e "${CYAN}=====================================${NC}"

echo -e "\n${GREEN}服务状态：${NC}"
docker ps

echo -e "\n${YELLOW}常用命令：${NC}"
echo -e "1. 查看 AstrBot 日志：${BOLD}cd /AstrBot && docker compose logs -f${NC}"
echo -e "2. 查看微信机器人日志：${BOLD}docker logs -f gewe${NC}"
echo -e "3. 查看 Napcat QQ 日志：${BOLD}docker logs -f napcat${NC}"
echo -e "4. 重启所有服务：${BOLD}cd /AstrBot && docker compose restart && docker restart gewe napcat${NC}"

# 在最后显示赞助商信息（不需要倒计时）
echo -e "${CYAN}====== 赞助商信息 ======${NC}"
echo -e "${BOLD}▶ MC云${NC}"
echo -e "  ${LIGHT_GREEN}2核2G高性能云电脑每月只要4.99￥ 24小时挂机没有任何问题！${NC}"
echo -e "  ${LIGHT_GREEN}https://idc.stay33.cn/act.html${NC}"
echo -e "${CYAN}========================${NC}\n"

# 清理下载的脚本（保留 bot.sh）
sudo rm -f mccloud_docker_u.sh mccloud_astrbot_u.sh mccloud_gewechat_u.sh mccloud_napcatqq_u.sh

# 显示 bot 命令使用提示
echo -e "\n${YELLOW}bot 命令使用说明：${NC}"
echo -e "直接输入 ${BOLD}bot${NC} 即可管理所有机器人服务包括日志查看"
echo -e "${CYAN}========================${NC}\n"

exit 0 